jjzjj

Java ExecutorService 和 ThreadPoolExecutor

全部标签

Python:WAITING所有 `concurrent.futures.ThreadPoolExecutor` 的 future

我已经给concurrent.futures.ThreadPoolExecutor一堆任务,我想等到它们都完成后再继续流程。我怎样才能做到这一点,而不必保存所有future并对其调用wait?(我想对执行者采取行动。) 最佳答案 只需调用Executor.shutdown:shutdown(wait=True)Signaltheexecutorthatitshouldfreeanyresourcesthatitisusingwhenthecurrentlypendingfuturesaredoneexecuting.CallstoE

Python:WAITING所有 `concurrent.futures.ThreadPoolExecutor` 的 future

我已经给concurrent.futures.ThreadPoolExecutor一堆任务,我想等到它们都完成后再继续流程。我怎样才能做到这一点,而不必保存所有future并对其调用wait?(我想对执行者采取行动。) 最佳答案 只需调用Executor.shutdown:shutdown(wait=True)Signaltheexecutorthatitshouldfreeanyresourcesthatitisusingwhenthecurrentlypendingfuturesaredoneexecuting.CallstoE

java - 如何使用 ThreadPoolExecutor 和自定义任务实现 PriorityBlockingQueue

我进行了很多搜索,但找不到解决问题的方法。我有自己的类BaseTask,它使用ThreadPoolExecutor来处理任务。我想要任务优先级,但是当我尝试使用PriorityBlockingQueue我得到ClassCastException因为ThreadPoolExecutor将我的任务包装到FutureTask对象。这显然是有道理的,因为FutureTask没有实现Comparable,但我将如何继续解决优先级问题?我读到您可以在ThreadPoolExecutor中覆盖newTaskFor(),但我似乎根本找不到这个方法...?任何建议将不胜感激!一些帮助的代码:在我的Bas

java - 如何使用 ThreadPoolExecutor 和自定义任务实现 PriorityBlockingQueue

我进行了很多搜索,但找不到解决问题的方法。我有自己的类BaseTask,它使用ThreadPoolExecutor来处理任务。我想要任务优先级,但是当我尝试使用PriorityBlockingQueue我得到ClassCastException因为ThreadPoolExecutor将我的任务包装到FutureTask对象。这显然是有道理的,因为FutureTask没有实现Comparable,但我将如何继续解决优先级问题?我读到您可以在ThreadPoolExecutor中覆盖newTaskFor(),但我似乎根本找不到这个方法...?任何建议将不胜感激!一些帮助的代码:在我的Bas

java - 删除 ThreadPoolExecutor 的所有排队任务

我有一个关于ThreadPoolExecutor的相当简单的问题。.我有以下情况:我必须使用队列中的对象,为它们创建适当的工作任务并将它们提交给ThreadPoolExecutor。这很简单。但在关闭场景中,许多工作人员可能会排队等待执行。由于其中一个任务可能运行了一个小时,并且我希望应用程序相对快速地正常关闭,因此我想丢弃ThreadPoolExecutor中的所有排队任务,而已经处理的任务应该正常完成。ThreadPoolExecutor文档有一个remove()方法,但只允许删除特定任务。purge()仅适用于已取消的future任务。我的想法是清除包含所有排队任务的队列。Thr

java - 删除 ThreadPoolExecutor 的所有排队任务

我有一个关于ThreadPoolExecutor的相当简单的问题。.我有以下情况:我必须使用队列中的对象,为它们创建适当的工作任务并将它们提交给ThreadPoolExecutor。这很简单。但在关闭场景中,许多工作人员可能会排队等待执行。由于其中一个任务可能运行了一个小时,并且我希望应用程序相对快速地正常关闭,因此我想丢弃ThreadPoolExecutor中的所有排队任务,而已经处理的任务应该正常完成。ThreadPoolExecutor文档有一个remove()方法,但只允许删除特定任务。purge()仅适用于已取消的future任务。我的想法是清除包含所有排队任务的队列。Thr

java - 如何等待 ThreadPoolExecutor 完成

我的问题:如何在ThreadPoolExecutor上执行一堆线程对象等他们都完成后再继续?我是ThreadPoolExecutor的新手。所以这段代码是一个测试来了解它是如何工作的。现在我什至没有用对象填充BlockingQueue因为我不明白如何在不使用另一个RunnableObjectexecute()的情况下启动队列。无论如何,现在我只是调用awaitTermination()但我认为我仍然缺少一些东西。任何提示都会很棒!谢谢。publicvoidtestThreadPoolExecutor()throwsInterruptedException{intlimit=20;Blo

java - 如何等待 ThreadPoolExecutor 完成

我的问题:如何在ThreadPoolExecutor上执行一堆线程对象等他们都完成后再继续?我是ThreadPoolExecutor的新手。所以这段代码是一个测试来了解它是如何工作的。现在我什至没有用对象填充BlockingQueue因为我不明白如何在不使用另一个RunnableObjectexecute()的情况下启动队列。无论如何,现在我只是调用awaitTermination()但我认为我仍然缺少一些东西。任何提示都会很棒!谢谢。publicvoidtestThreadPoolExecutor()throwsInterruptedException{intlimit=20;Blo

java - ThreadPoolExecutor 的提交和执行方法有什么区别

这个问题在这里已经有了答案:ChoosebetweenExecutorService'ssubmitandExecutorService'sexecute(7个回答)关闭9年前.我发现有两种方式(提交和执行)将Runnable添加到线程池中,有什么区别? 最佳答案 不同的是execute不会返回一个Future,所以你不能等待Runnable的完成而得到使用它引发的任何异常。 关于java-ThreadPoolExecutor的提交和执行方法有什么区别,我们在StackOverflow上

java - ThreadPoolExecutor 的提交和执行方法有什么区别

这个问题在这里已经有了答案:ChoosebetweenExecutorService'ssubmitandExecutorService'sexecute(7个回答)关闭9年前.我发现有两种方式(提交和执行)将Runnable添加到线程池中,有什么区别? 最佳答案 不同的是execute不会返回一个Future,所以你不能等待Runnable的完成而得到使用它引发的任何异常。 关于java-ThreadPoolExecutor的提交和执行方法有什么区别,我们在StackOverflow上